草庐IT

c++ - 在库 API 中传递 std::string

全部标签

c - 我怎样才能在 C 中获得一个进程句柄而不是它的名字?

我正在WindowsXP上编写程序,试图获取calc.exe的进程句柄。我可以假设用户确实运行了calc.exe,但他可能更改了文件名。即使名称已更改,是否有一个名称可以获取calc.exe进程的句柄?我找到了这个答案,但它不处理顽皮用户更改名称(例如更改为calc_new.exe)的情况:HowcanIgetaprocesshandlebyitsnameinC++?我可以使用Win32进程的一些其他属性来查找句柄吗? 最佳答案 您可以使用以下Win32API调用序列执行此操作:使用Spy++或类似工具找到您定位的顶级窗口的类名。调

c# - 检测窗口何时关闭并在 C# 中传递窗口的路径

我正在尝试开发我在这篇文章中描述的软件:Getthepathofeveryexplorerwindowwithc#在我更好地分析问题之后,我发现我需要用“关闭的窗口”而不是“当前打开的窗口”来构建一个列表。我想知道是否有一种方法可以捕获关闭窗口操作并将该窗口的路径传递给C#中的变量。我很感激回复中有一些解释,而不仅仅是代码,以真正理解代码的作用。 最佳答案 使用CBT钩子(Hook)接收关闭窗口的通知。请注意,使用native代码可能会更容易。从托管代码中,您将花费大量精力来处理p/invoke签名、编码等。

c - 如何获得安装的内存大小?

我想查询安装内存的大小。我使用了上面的代码:voidGetInstalledMemory(char*MemorySize){memset(MemorySize,0,sizeof(MemorySize));MEMORYSTATUSEXstatex;statex.dwLength=sizeof(statex);if(!GlobalMemoryStatusEx(&statex))strcpy(MemorySize,"N/A");elsesprintf(MemorySize,"%I64d",statex.ullTotalPhys/1024/1024);}//GetInstalledMemory

windows - 在 VBA 中使用 Magnification API 获取屏幕放大倍数

我写了一个小模块来尝试获取屏幕放大值。它调用magnification.dll中的一些程序。我想我的编码是正确的,但我遇到了可怕的453错误(找不到入口点)。代码如下:PublicDeclareFunctionMagInitializeLib"magnification.dll"()AsBooleanPublicDeclareFunctionMagUninitializeLib"magnification.dll"()AsBooleanPublicDeclareFunctionMagGetFullscreenTransformLib"magnification.dll"_(ByValp

c - 在 x,y 位置的 Windows 控制台中打印

我想在Windows的标准控制台上的某个(X,Y)位置打印。我尝试使用conio.h,但已弃用/不存在。gotoxy(x,y)方法似乎是我想要的。我试过这些方法,但它只会打印额外的字符:printf("%c[%d;%df",0x1B,y,x);printf("\x1B%c[%d;%df",0x1B,y,x);printf("\x1B[%d;%dH",0x1B,y,x);提前致谢。 最佳答案 在控制台中定位光标的WindowsAPI调用是SetConsoleCursorPosition.正如有人评论的那样,“curses”是一个跨平台

c - 如何将控制台中的文本保存到 C 中的字符串(Windows 平台)

我目前正在为一个学校项目构建一个控制台应用程序,我的应用程序确实需要这个功能。如何将控制台中的所有文本保存为C(Windows平台)中的字符串?例如:如果我使用函数system("dir"),它会输出到控制台并列出目录中的所有子目录和文件。我希望将它保存在一个字符串中以备后用。 最佳答案 你可以使用popen()而不是system():#include#includeintmain(){FILE*fp;charpath[PATH_MAX];fp=popen("DIR","r");if(fp==NULL){/*Handleerror*

c - 如何使用 fgets 在 for 循环中计算磁盘读取速度(以 MB/s 为单位)

我有以下功能for(i=0;i它用文件指针流fp中的字符串填充“指向X字符数组的X字符数组的指针”。变量lines是数字文件的行数(预先计算)。我想计算fgets操作的读取速度。但是我不确定该怎么做,也不确定“公式” 最佳答案 使用clock_gettime获取一些时间,并将其包裹在fgets周围。然后从b中适本地减去a,您就有了执行fgets所需的时间(和一个clock_gettime调用)。#includestructtimespeca,b;clock_gettime(CLOCK_MONOTONIC,&a);fgets(...)

c# - Windows 应用程序 Java Servlet 参数传递

如何将参数从C#/.NetWindows应用程序传递到JavaServlet?这里要补充的一件事是我们不能接触JavaServlet代码。 最佳答案 我假设您的javaservlet部署在某个容器中,例如Tomcat服务器。向任何Web应用程序传递参数的最简单方法是通过查询字符串。假设Servlet部署在tomcat服务器(或任何其他容器)上tomcat服务器运行在mymachine机器上并监听端口8080可通过以下URL访问servlethttp://mymachine:8080/myapp/myservlet现在要将参数(例如p

c - 如何检测控制台或 Windows 应用程序?

我正在尝试编写一个像ResourceHacker这样的图标更改程序。我可以更改Windows程序的图标,但不能更改控制台程序,我认为这很明显。所以我想在我的程序中编写一段代码,在尝试更改图标之前检查参数exe文件是控制台程序还是Windows程序。那么如何判断一个exe文件是控制台程序还是windows程序。我正在使用visualstudio用C编写程序。 最佳答案 PortableExecutableheader中的Subsystem值该文件将为您提供信息:WINDOWS_CUI3RunsintheWindowscharacter

windows - 将两个文件传递给 Windows 文件类型操作

使用WindowsXP,我创建了一个将两个文件作为参数的批处理文件,现在我想向特定扩展名添加一个文件类型操作“比较”,例如“.txt”调用带有两个选定文件的批处理文件。也就是说,我想选择两个“.txt”文件,然后从shell上下文菜单中选择“比较”,让它用这两个文件执行批处理文件。我可以轻松地将“比较”操作添加到“文本文档”文件类型,并选择带有两个参数的批处理文件,例如“C:\batch.bat”“%1”“%2”(顺便说一句:这在​​cmd和其他程序中工作正常,例如Gitdifftool),但是如果我选择2个文件并尝试比较它们,Windows会打开两个单独的文件两个选定文件中的每一个的